One of the key components of a video encoder is a robust rate control technology that can intelligently maximize output video quality while meeting the stringent requirements of a system or product design. For example, in video communications applications it is often necessary to transmit at a fixed bit rate. Any extra amount of information transmitted beyond this fixed bit rate would be discarded, and transmitting at a lower bit rate would be a waste of bandwidth. When the bandwidth is wasted, video quality is less than ideal. Similarly, preparing a video stream for media storage (e.g. DVD) necessitates the population of a disk to the maximum capacity such that no disk partition is wasted.
Encoded video should minimize spatial and temporal redundancies to achieve compression and optimize bandwidth usage. To achieve a given Quality of Service (QoS) with an even smaller bandwidth, video compression systems exploit the statistical redundancies in video sources by entropy encoding. Even though cutting edge video encoders make use of sophisticated tools to de-correlate spatial, temporal, and spectral sample dependencies, there are still some hidden statistical redundancies which remain embedded in the stream. Thorough identification of such redundancies plays a major role in reducing the size of the final output video stream. These redundancies are higher order correlations that are next to impossible to distinguish with low order predictors and are best identified via entropy coders. Since video sources are non-stationary in statistical sense, advanced entropy coders can take advantage of context modeling to adapt to changes in the source and achieve better compaction.
During real-time encoding, the actual number of bits output from a video encoder must be fed back to compute deviations in bit rate. A bit rate controller uses these deviations for future adjustments. With advanced entropy encoding, bits output from a video encoder can be delayed by the inherent complexity of this encoding technique. Therefore, a new approach is required for controlling bit rate in a video encoder that uses an advanced entropy engine.